package com.xes.ams.client.api;

import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import org.springframework.data.annotation.Id;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Table;
import java.io.Serializable;
import java.util.Date;

@Entity
@Table(name = "tb_prepare_attendance")
public class AttendData implements Serializable {
	
    private static final long serialVersionUID = 5454155825314635342L;

    /** 预考勤id */
    @Id
    private String id;
    /** 学员uid */
	@Column(name = "stu_uid", nullable = false, length=32)
    private String stuUid;
    /** 学员姓名 */
	@Column(name = "stu_name", length=32)
    private String stuName;
    /** 班级id */
	@Column(name = "xes_class_id", length=32)
    private String xesClassId;
	/** 班级名称 */
	@Column(name = "xes_class_name", length=200)
	private String xesClassName;
	/** 课程ID */
	@Column(name = "curriculum_id", length=32)
	private String curriculumId;
	/** 课次 */
	@Column(name = "curriculum_num")
    private Integer curriculumNum;
	/** 上课日期 */
	@Column(name = "class_date")
    private Date classDate;
    /** 上课开始时间 */
    @Column(name = "start_time")
    @JsonFormat(pattern = "HH:mm:ss")
    private Date startTime;
    /** 上课结束时间 */
    @Column(name = "end_time")
    @JsonFormat(pattern = "HH:mm:ss")
    private Date endTime;
    /** 时戳[上午、下午、晚上] */
    @Column(name = "period", length=32)
    private String period;
    /** 教师ID */
    @Column(name = "teacher_id", length=32)
    private String teacherId;
    /** 教师名称 */
    @Column(name = "teaher_name", length=32)
    private String teacherName;
    /** 教师头像 */
    @Column(name = "teacher_picture_path", length=200)
    private String teacherPicturePath;
    /** 服务中心名称 */
    @Column(name = "service_center_name", length=200)
    private String serviceCenterName;
    /** 上课地点名称 */
    @Column(name = "class_room_name", length=50)
    private String classRoomName;
    /** 上课时间名称 */
    @Column(name = "class_time_name", length=100)
    private String classTimeName;
    /** 迟到类型(0:未迟到;1:课前迟到;2:课后迟到;) */
    @Column(name = "later_type")
    private Integer laterType;
    /** 迟到分钟 */
    @Column(name = "later_times")
    private Integer laterTimes;
    /** 教学点id */
    @Column(name = "venue_id", length=32)
    private String venueId;
    /** 教学点名称 */
    @Column(name = "venue_name", length=50)
    private String venueName;
    /** 是否删除 1:已删除 0:未删除 */
    @Column(name = "is_deleted")
    private Integer isDelete;
    /** 是否调课 */
    @Column(name = "is_changed_course")
    private Integer isChangeCourse;
    /** 是否转班 */
    @Column(name = "is_changed_class")
    private Integer isChangeClass;
    /** 
      * isAbsent:是否上课   默认：1：未上课 0：已上课
      * isPunctual：是否迟到  默认：0 未迟到 1： 迟到
      * 准时上课
      * isAbsent=0;
	  *	isPunctual=0;
      * 迟到
      * isAbsent=0;
      * isPunctual=1;
      * 缺课
      * isAbsent=1;
      * isPunctual=1;
    ****/
    @Column(name = "is_absent")
    private Integer isAbsent;
    /** 是否正常上课  默认：0*/
    @Column(name = "is_punctual")
    private Integer isPunctual;
    /** 母亲电话号码*/
    @Column(name = "mather_tel")
    private String motherTel;
    /** 父亲电话号码*/
    @Column(name = "father_tel")
    private String fatherTel;
    /** 考勤卡号*/
    @Column(name = "attendance_card_num")
    private String attendanceCardNum;
    /** 考勤卡状态 0未绑定 1已绑定 2已挂失 3已作废 客户端无用*/
    @Column(name = "attendance_card_status")
    private Integer attendanceCardStatus;
    /** 创建时间*/
    @Column(name = "create_date")
    private Date createDate;
    /** 修改时间*/
    @Column(name = "modify_date")
    private Date modifyDate;
    /** 学员id */
    @Column(name = "stu_id")
    private String stuId;
	/** 是否回传考勤记录 **/
	@Column(name = "is_send")
	private Integer isSend = 0;
	/** 是否发送ICS记录 **/
	@Column(name = "is_ics_send")
	private Integer isIcsSend = 0;
    
    
    public String getId() {
		return id;
	}

	public void setId(String id) {
		this.id = id;
	}

	public String getStuUid() {
		return stuUid;
	}

	public void setStuUid(String stuUid) {
		this.stuUid = stuUid;
	}

	public String getStuName() {
		return stuName;
	}

	public void setStuName(String stuName) {
		this.stuName = stuName;
	}

	public String getXesClassId() {
		return xesClassId;
	}

	public void setXesClassId(String xesClassId) {
		this.xesClassId = xesClassId;
	}

	public String getXesClassName() {
		return xesClassName;
	}

	public void setXesClassName(String xesClassName) {
		this.xesClassName = xesClassName;
	}

	public String getCurriculumId() {
		return curriculumId;
	}

	public void setCurriculumId(String curriculumId) {
		this.curriculumId = curriculumId;
	}

	public Integer getCurriculumNum() {
		return curriculumNum;
	}

	public void setCurriculumNum(Integer curriculumNum) {
		this.curriculumNum = curriculumNum;
	}

	public Date getClassDate() {
		return classDate;
	}

	public void setClassDate(Date classDate) {
		this.classDate = classDate;
	}

	public Date getStartTime() {
		return startTime;
	}

	public void setStartTime(Date startTime) {
		this.startTime = startTime;
	}

	public Date getEndTime() {
		return endTime;
	}

	public void setEndTime(Date endTime) {
		this.endTime = endTime;
	}

	public String getPeriod() {
		return period;
	}

	public void setPeriod(String period) {
		this.period = period;
	}

	public String getTeacherId() {
		return teacherId;
	}

	public void setTeacherId(String teacherId) {
		this.teacherId = teacherId;
	}

	public String getTeacherName() {
		return teacherName;
	}

	public void setTeacherName(String teacherName) {
		this.teacherName = teacherName;
	}

	public String getTeacherPicturePath() {
		return teacherPicturePath;
	}

	public void setTeacherPicturePath(String teacherPicturePath) {
		this.teacherPicturePath = teacherPicturePath;
	}

	public String getServiceCenterName() {
		return serviceCenterName;
	}

	public void setServiceCenterName(String serviceCenterName) {
		this.serviceCenterName = serviceCenterName;
	}

	public String getClassRoomName() {
		return classRoomName;
	}

	public void setClassRoomName(String classRoomName) {
		this.classRoomName = classRoomName;
	}

	public String getClassTimeName() {
		return classTimeName;
	}

	public void setClassTimeName(String classTimeName) {
		this.classTimeName = classTimeName;
	}

	public Integer getLaterType() {
		return laterType;
	}

	public void setLaterType(Integer laterType) {
		this.laterType = laterType;
	}

	public Integer getLaterTimes() {
		return laterTimes;
	}

	public void setLaterTimes(Integer laterTimes) {
		this.laterTimes = laterTimes;
	}

	public String getVenueId() {
		return venueId;
	}

	public void setVenueId(String venueId) {
		this.venueId = venueId;
	}

	public String getVenueName() {
		return venueName;
	}

	public void setVenueName(String venueName) {
		this.venueName = venueName;
	}

	public Integer getIsDelete() {
		return isDelete;
	}

	public void setIsDelete(Integer isDelete) {
		this.isDelete = isDelete;
	}

	public Integer getIsChangeCourse() {
		return isChangeCourse;
	}

	public void setIsChangeCourse(Integer isChangeCourse) {
		this.isChangeCourse = isChangeCourse;
	}

	public Integer getIsChangeClass() {
		return isChangeClass;
	}

	public void setIsChangeClass(Integer isChangeClass) {
		this.isChangeClass = isChangeClass;
	}

	public Integer getIsAbsent() {
		return isAbsent;
	}

	public void setIsAbsent(Integer isAbsent) {
		this.isAbsent = isAbsent;
	}

	public Integer getIsPunctual() {
		return isPunctual;
	}

	public void setIsPunctual(Integer isPunctual) {
		this.isPunctual = isPunctual;
	}

	public String getMotherTel() {
		return motherTel;
	}

	public void setMotherTel(String motherTel) {
		this.motherTel = motherTel;
	}

	public String getFatherTel() {
		return fatherTel;
	}

	public void setFatherTel(String fatherTel) {
		this.fatherTel = fatherTel;
	}

	public String getAttendanceCardNum() {
		return attendanceCardNum;
	}

	public void setAttendanceCardNum(String attendanceCardNum) {
		this.attendanceCardNum = attendanceCardNum;
	}

	public Integer getAttendanceCardStatus() {
		return attendanceCardStatus;
	}

	public void setAttendanceCardStatus(Integer attendanceCardStatus) {
		this.attendanceCardStatus = attendanceCardStatus;
	}

	public Date getCreateDate() {
		return createDate;
	}

	public void setCreateDate(Date createDate) {
		this.createDate = createDate;
	}

	public Date getModifyDate() {
		return modifyDate;
	}

	public void setModifyDate(Date modifyDate) {
		this.modifyDate = modifyDate;
	}

	public String getStuId() {
		return stuId;
	}

	public void setStuId(String stuId) {
		this.stuId = stuId;
	}

	public Integer getIsSend() {
		return isSend;
	}

	public void setIsSend(Integer isSend) {
		this.isSend = isSend;
	}

	public Integer getIsIcsSend() {
		return isIcsSend;
	}

	public void setIsIcsSend(Integer isIcsSend) {
		this.isIcsSend = isIcsSend;
	}

	@Override
	public String toString() {
		return ToStringBuilder.reflectionToString(this,ToStringStyle.MULTI_LINE_STYLE);
	}
}